home *** CD-ROM | disk | FTP | other *** search
- From: clamage@Eng.Sun.COM (Steve Clamage)
- Message-ID: <4dgj4m$9la@engnews1.Eng.Sun.COM>
- X-Original-Date: 16 Jan 1996 16:18:30 GMT
- Path: in2.uu.net!bounce-back
- Date: 16 Jan 96 18:30:56 GMT
- Approved: fjh@cs.mu.oz.au
- Newsgroups: comp.std.c++
- Subject: Re: Throwing an exception from within a si
- Organization: Sun Microsystems Inc.
- References: <4dekiv$22h@galaxy.ucr.edu>
- Reply-To: clamage@Eng.Sun.COM
- X-Auth: PGPMoose V1.1 PGP comp.std.c++
- iQBFAgUBMPvu7OEDnX0m9pzZAQEi9AF/UstnNv+pm4V+r8uEmGF/BwOEQSZ5pH8s
- XU7QajGQt2NJ7u5PUO/3ykLP9E0nTd7o
- =a18R
-
- In article 22h@galaxy.ucr.edu, thp@cs.ucr.edu (Tom Payne) writes:
- >
- >Implicit in a qestion of what the Standard says are the related
- >questions of what it should say and why --- why shouldn't signal
- >handlers be allowed to throw exceptions? (The question seems both
- >interesting and appropriate.)
-
- Exceptions are synchronous, and unwind the stack from the point of the
- throw to the point of the handler. When an asynchronous signal arrives,
- what is the state of the stack? Answer: unknown. In particular, the
- stack might not even be in a consistent state -- arguments half pushed
- during function entry or half popped during exit.
-
- In C, a signal handler isn't allowed to do much of anything, precisely
- because the program state can't be known and may be inconsistent. The
- same is true in C++.
-
- Allowing exceptions to be thrown from a signal handler would place a
- noticeable penalty on all programs to provide locks on every function
- entry and exit, even programs that didn't throw exceptions or use
- signals.
- ---
- Steve Clamage, stephen.clamage@eng.sun.com
- ---
- [ comp.std.c++ is moderated. Submission address: std-c++@ncar.ucar.edu.
- Contact address: std-c++-request@ncar.ucar.edu. The moderation policy
- is summarized in http://dogbert.lbl.gov/~matt/std-c++/policy.html. ]
-